Vscode: Barra de desplazamiento mejorada (agregar minimapa)

Creado en 1 abr. 2016  ·  105Comentarios  ·  Fuente: microsoft/vscode

Solicitud de función

Agregue la función Barra de desplazamiento mejorada de VS 2013 y VS 2015 en VS Code. Es una forma extremadamente eficiente de moverse dentro de un archivo y sería una gran característica tener en VS Code.

Si esto ya es una extensión u opción, no pude encontrarlo.

editor feature-request

Comentario más útil

Una actualización sobre esto

Estamos trabajando para poder implementar esta función:

  • parte del trabajo está terminado en vscode-textmate en la rama next - https://github.com/Microsoft/vscode-textmate/tree/next
  • allí ahora podemos obtener (en un formato codificado en binario) el resultado de la tokenización + la coincidencia de temas. es decir, obtenemos colores lisos, estilo de fuente, etc., del tokenizador que ahora puede obtener la información del tema (es decir, la aplicación del tema se puede hacer en código en lugar de a través de CSS)
  • necesitamos adoptar este nuevo formato en vscode .

    • eso significa que debemos adoptar este nuevo formato también para los otros proveedores de tokenización (hay 3 en total: textmate, monarch y manual). Los dos últimos entran en juego en el monaco-editor .

    • estamos limpiando los tokens del editor independiente .css modo que se pueda transformar en una estructura de datos JS (consulte https://github.com/Microsoft/vscode/commits/master/src/vs/editor/browser/ standalone / media / standalone-tokens.css)

    • ya terminamos de alinear los tokens monaco-languages modo que todos emitan tokens de estilo clásico.

queda por hacer:

  • [x] transforma los tokenizadores monarch / manuales para usar la coincidencia de temas en JS (no en CSS) y para generar el mismo formato binario que vscode-textmate .
  • [x] adoptar un nuevo formato binario de tokenización en el modelo de editor
  • [x] adoptar un nuevo formato de tokenización en la vista del editor
  • [x] empezar a implementar esta función

TL; DR Estamos trabajando en eso, solo que a veces se necesita mucho trabajo bajo el capó antes de llegar a lo llamativo.

Todos 105 comentarios

@jschraub ¿Puede señalar características específicas que le gusten o que lo ayuden a moverse de manera más eficiente desde la barra de desplazamiento mejorada de VS 2013/2015?

Absolutamente, @alexandrudima. La capacidad de obtener de un vistazo una representación visual de su documento / código. Tener una "vista de 10,000 pies" hace que sea fácil echar un vistazo a su documento e inmediatamente hacer clic en el fragmento de código que está buscando. Si bien la barra de desplazamiento mejorada de VS 2013/2015 ofrece más funciones que eso, no uso muchas de ellas.

Muchos otros editores de código tienen características similares, incluidos Sublime y Atom, y todos tienen subcaracterísticas diferentes, pero creo que tener una oferta para una "vista de 10,000 pies" de su documento de un vistazo rápido, brinda una gran ventaja sobre los editores de texto que lo hacen. no tiene una característica correspondiente.

Por favor, avíseme si eso es lo que estaba buscando, o si necesita detalles mejores / diferentes.

¡Gran descripción! ¡Gracias!

Hola @alexandrudima , ¿alguien de VSCode está trabajando en esto para la próxima versión? ¿Es esto algo que la comunidad puede contribuir a la barra de desplazamiento?

Supongo que será una especie de lectura del modelo del editor y dibujar una representación en minimapa en un lienzo. wdyt?

@nojvek Elaboraremos y publicaremos el plan de septiembre a finales de la próxima semana. Dado que este problema está subiendo a la parte superior de esta consulta, usamos para rastrear las solicitudes de la comunidad (https://github.com/Microsoft/vscode/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc ), tiene un cambio alto para estar en el plan de septiembre.

Por favor manténgase al tanto :)

Beta bits por favor! Es mi característica favorita y lo único que me mantiene atado a Sublime Text.

Pronto ™

👍 la función del minimapa se echa mucho de menos

Yo también lo extraño mucho.

+ Infinito

@ + 1 Minimap es una de las funciones imprescindibles para mí, funciona muy bien en atom con muchos complementos.

vea el minimapa de Kate, que veo como un buen ejemplo sobre este asunto: https://docs.kde.org/trunk5/en/applications/katepart/kate-part-scrollbar-minimap.html

+1 para el Minimapa. Un 'mantener presionado el botón central del mouse' (botón de la barra de desplazamiento) para desplazarse también sería genial

Si tenemos estado de git, errores, otra aparición de la palabra actual, resultados de búsqueda, indicación de ventana de vista previa de vista previa, básicamente todo el minimapa de Sublime tiene + todo lo que tiene la barra de desplazamiento actual de VSCode, ¡será enorme!

slice

capture

No veo por qué VS Code no puede si VS puede.

Esta sería una gran victoria y una de las últimas características que faltan para los sublimes vestigios.

Recientemente descubrí el uso, no puedo esperar hasta que se implemente

+1 no puedo esperar a que esto se implemente en VSCode ...

+1 Agregue pronto.

+1 Por favor agregue MiniMap

¡¿No puedo creer que esto no fuera una característica del primer lanzamiento ?!

Agregue MiniMap para VSCode

+1 Por favor agregue MiniMap

+1 a eso

Estoy tan triste que esto no lo hizo en 1.6.0 :( por favor agregue esto lo antes posible

Tampoco parece haber hecho el plan de octubre. Crucemos los dedos para noviembre, supongo. Parece que ahora está en la parte superior de la lista de solicitudes, por lo que es bastante emocionante.

+1

+10

+1

+1

No más +1 comentario. En su lugar, vota a favor del problema original.
Las personas suscritas a este hilo quieren que se les notifique cuando se haya realizado un progreso, no cuando usted haga +1.

Ustedes pueden bloquear la conversación a los colaboradores.

Gracias y Saludos,
Deepu

El jueves 13 de octubre de 2016 a las 9:13 p.m., Pine [email protected] escribió:

No más +1 comentario. En su lugar, vota a favor del problema original.
Las personas suscritas a este hilo quieren que se les notifique cuando se haya progresado
realizado, no cuando hiciste +1.

-
Estás recibiendo esto porque hiciste un comentario.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/4865#issuecomment -253552567,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/ABDlF49KaIi-Lgu1cKv8Zhn1Tjoa-Hruks5qzlGkgaJpZM4H93xs
.

+1

Incluso cuando realmente no extraño el minimapa en @code , si necesito elegir, puedo decir que realmente me gusta el enfoque del minimapa en Atom (además, el código es OS). No es una versión reducida del código, sino una representación esquemática. Eso es inteligente, porque lo que desea es identificar rápidamente las secciones del código y no el código en sí, y puede mejorar visualmente los elementos clave que lo hacen posible, como el color, la longitud de la línea, el espacio en blanco ...

2016-10-21_09h34_59

Prácticamente esperando esto antes de hacer el cambio.

Y también podría hacer que muestre el git diff y resalte la posición actual?

Una actualización rápida sobre esto:

Actualmente, la representación de una línea de código fuente funciona mediante:

1. Renderice muchos tramos y cada uno obtiene como nombre de clase los alcances de TM generados:

<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. Genere muchas reglas CSS a partir de los temas de MT.

.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. Deje que el navegador haga su magia :)

image

Discusión

Esto es muy ineficiente:

  • necesitamos almacenar todos estos ámbitos por token (alto uso de memoria, de modo que el desplazamiento hacia arriba / abajo será una operación de búsqueda de memoria en lugar de una llamada a tokenizar con TM)
  • necesitamos pintar todos estos ámbitos (solo mire el enorme tamaño del HTML para representar una línea)
  • presionamos el navegador para que coincida con todo este CSS

Esto se implementó en un momento en el que no usábamos TM y era la mejor manera de tener un mundo en el que algunos tokenizadores todavía se escribían manualmente, mientras que otros se realizaban con TM. Ahora que hemos terminado de mover json, css, less, scss, html, razor y handlebars a las extensiones, podemos comenzar a optimizar nuevamente :).

Quiero cambiarlo a un modelo donde:

  • inmediatamente (cerca de donde ocurre la tokenización) resolvemos estilos por token
  • almacenar solo esos estilos (esto significa que cambiar el tema eliminará todos los tokens almacenados en caché)
  • renderizar usando solo esos estilos (por ejemplo, no hay necesidad de renderizar el nombre de clase block si ninguna regla en el tema lo seleccionará), podemos incorporarlos (es decir, style="..." ) o generarlos a medida nombres de clases (con nombres cortos y únicos que, con suerte, ayudarán al navegador a hacer su magia más rápido).

Finalmente, eso nos permitirá saber rápidamente qué color / audacia / énfasis tiene una determinada ficha. Luego podemos usar esta información para pintar (usando <canvas> ) rectángulos que se aproximen a la forma del texto. Los rectángulos se pueden pintar solo para el texto que está garantizado para ser de izquierda a derecha (que es algo que ahora rastreamos desde hace un par de días). El texto Bi-Di / RTL no tendrá un minimapa, ya que el navegador realiza el diseño del texto y estaría completamente desactivado. También es cuestionable lo que deberíamos hacer con las fuentes proporcionales.

Perdón por la publicación larga, solo quería hacerle saber que esto está en nuestro radar y que podría tener una prioridad aún mayor debido a las posibles ganancias de rendimiento.

+1

+1

+1

Github tiene una forma de contar con los pulgares arriba. Por favor utilícelo. Los +1 son
realmente abarrotando el hilo.

El jueves 3 de noviembre de 2016 a las 10:46 a.m., Filiphe Vilar Figueiredo <
[email protected]> escribió:

+1

-
Recibes esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/4865#issuecomment -258219634,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AA-JVK1A3zeRm0CUCePdrkPdqtRdbtMfks5q6h3ZgaJpZM4H93xs
.

¿Algún progreso en esto, chicos? ¿Puede ayudar la comunidad?

Deje de enviar spam al hilo con +1, FFS. Cuando seguimos este problema, queremos obtener información pertinente sobre el progreso de esta función, no recibir spam con +1. Use la reacción de aprobación en el comentario original o vote a favor en UserVoice en su lugar.

Estaba pensando que sería genial si pudiéramos hacer clic en el botón central del mouse y navegar por el editor como lo hacemos en un navegador como Microsoft Edge o Visual Studio. Desplazarse hacia arriba y hacia abajo es genial, ¡pero de lado a lado sería mejor! Me encantaría poder hacer clic en el botón central del mouse para abrir la rueda de desplazamiento hacia arriba, abajo, izquierda y derecha y moverme por la pantalla moviendo el mouse. Pruébelo en Edge y vea exactamente de lo que estoy hablando.

¿Debería publicar esto debajo de algo nuevo?

No haré +1, para obtener votos negativos, intente resolver este problema después de la próxima compilación de noviembre para que podamos ver esto en enero, lo extraño mucho.
Actualización: y también obtengo muchos votos negativos LOL

Todo @jschraub está diciendo que necesitamos una vista de pájaro

Estoy usando Sublime junto con VSCode solo por esta razón que no tengo forma de ver mi código de mil líneas.

Estoy confundido. el equipo parece haber estado usando reacciones para juzgar el interés y priorizar las solicitudes de funciones ... incluso mencionaron tanto para "salida en caliente" en el último blog que obtuvo ~ 332. Sin embargo, "Enhanced Scrollbar" actualmente # 1 (creo) con más de 600 no se ha movido a un hito todavía? Entonces, ¿qué pasa? ¿Por qué el equipo de desarrollo no comparte nuestra opinión sobre esto?

por lo que vale ... esta es una de las principales razones por las que me quedo con Atom ... El minimapa de Atom y los complementos de terceros son simplemente fantásticos ... sin duda tiene la mejor implementación (ya que hay un api completa para ello)

Una actualización sobre esto

Estamos trabajando para poder implementar esta función:

  • parte del trabajo está terminado en vscode-textmate en la rama next - https://github.com/Microsoft/vscode-textmate/tree/next
  • allí ahora podemos obtener (en un formato codificado en binario) el resultado de la tokenización + la coincidencia de temas. es decir, obtenemos colores lisos, estilo de fuente, etc., del tokenizador que ahora puede obtener la información del tema (es decir, la aplicación del tema se puede hacer en código en lugar de a través de CSS)
  • necesitamos adoptar este nuevo formato en vscode .

    • eso significa que debemos adoptar este nuevo formato también para los otros proveedores de tokenización (hay 3 en total: textmate, monarch y manual). Los dos últimos entran en juego en el monaco-editor .

    • estamos limpiando los tokens del editor independiente .css modo que se pueda transformar en una estructura de datos JS (consulte https://github.com/Microsoft/vscode/commits/master/src/vs/editor/browser/ standalone / media / standalone-tokens.css)

    • ya terminamos de alinear los tokens monaco-languages modo que todos emitan tokens de estilo clásico.

queda por hacer:

  • [x] transforma los tokenizadores monarch / manuales para usar la coincidencia de temas en JS (no en CSS) y para generar el mismo formato binario que vscode-textmate .
  • [x] adoptar un nuevo formato binario de tokenización en el modelo de editor
  • [x] adoptar un nuevo formato de tokenización en la vista del editor
  • [x] empezar a implementar esta función

TL; DR Estamos trabajando en eso, solo que a veces se necesita mucho trabajo bajo el capó antes de llegar a lo llamativo.

Solo me gustaría que considerara mostrar las selecciones y los resultados de búsqueda resaltados en el minimapa como una característica.

+1

¿Cuál es el estado de él ahora? Alguien resume por favor.

Esto es realmente lo que falta en Visual Studio Code.

@charlesmilette : "Deja de enviar spam al hilo con +1, FFS. Cuando seguimos este problema, queremos obtener información pertinente sobre el progreso de esta función, no recibir spam con +1. Usa la reacción de aprobación en el comentario original o en su lugar, vote a favor de UserVoice ".

Utilice 👍 reacción por favor. No comente +1.

+1

Completamente fuera de tema, pero después de ser spam con respuestas +1, no puedo culpar a los usuarios por esto por varias razones:

  • La versión móvil de Github no tiene una interfaz de usuario para las reacciones, tuve que cambiar a la interfaz de usuario de escritorio para verlas.
  • La interfaz de usuario del comentario está en la parte inferior de la página y la reacción se adjunta en la primera publicación en la parte superior. Se debe adjuntar un atajo de reacción a la interfaz de usuario del comentario y vincularlo automáticamente a la primera publicación.
  • Las publicaciones "+1" deben detectarse automáticamente con un análisis simple y convertirse en reacción o al menos proponer al usuario que lo haga.
  • Github debería proponer recibir notificaciones para publicaciones con un mínimo de n caracteres.

Fue bueno escuchar que la función de minimapa está en desarrollo, lo que me da más confianza a los que se transfirieron del texto sublime para permanecer con el código vs.

¿Hay alguna razón por la que esto no se implementaría como una extensión? Si está disponible, parece perfecto para una extensión.

la extensión sería una solución temporal, no una buena solución. ¿Realmente desea instalar funciones básicas individualmente a través de extensiones? Primero descargue VScode, luego aquí está la lista de 30 extensiones que pueden no funcionar juntas pero que serán necesarias para proporcionar la mayoría de las funcionalidades básicas. (1. copiar / pegar v3.0, 2. pestañas, 3. sangría automática, 4. tabstospace, 5. autoguardado, 6. resaltador de color, ...... 28. birdeyeview_by_dx3ee_v1.0.1 ...)

Esperando la implementación de esta función de minimapa para cambiar de Atom.

@techsin No es realmente una característica básica ... es más una preferencia personal.
Sin embargo, por lo que he visto, a partir de ahora la API no permite renderizar elementos personalizados en tal medida, por lo que no es tan factible ni siquiera intentar crear una extensión de este tipo.

@sapiraz Estoy de acuerdo contigo, no es esencial para un editor de texto, pero también creo que es una de las razones por las que Sublime Text (o Atom) es tan popular. ¡Es una característica "clave" que engancha a la gente! Como ejemplo, digamos que cada editor tiene texto negro y fondo blanco, y un nuevo editor de texto ofrece la opción de cambiar eso a su gusto. Por supuesto, no es realmente crucial para el propósito de un editor de texto, pero mejora tanto la experiencia que la gente está lista para dejar su buen editor en este. Y creo que eso es lo que está pasando aquí. UX también es esencial;)

La experiencia de usuario es esencial, marca la diferencia entre una buena experiencia y una sensación súper molesta que te da cuando sientes "esto no está bien" o "realmente extraño eso".

Esto no es diferente a tener buenos atajos y búsquedas. ¿Son estos esenciales para codificar? Realmente no, pero de nuevo puedo codificar con el editor de texto ...

Necesito estar de acuerdo con @sapiraz aquí, podría ser una característica agradable o incluso importante para muchas personas, pero no la llamemos básica. Hasta ahora, Sublime es el único editor que tiene esto por defecto (en Atom hay una extensión de abe33), y Sublime carece de la funcionalidad extendida en la barra de desplazamiento que proporciona Code.

Para mí, la velocidad y la estabilidad son características mucho mejores y verdaderamente "básicas", y si el equipo está trabajando para implementar esto de la mejor manera posible, les daré todo el tiempo que necesiten.

@jfcartier , @JonnyBGod Bueno, por supuesto, la usuario es importante.
A mí también me gusta la función de minimapa en otros editores y espero verla pronto en VSCode ... pero no la llamemos como no es: una función básica.

Realmente no puede compararlo con accesos directos, búsqueda, copiar / pegar o incluso el soporte de esquemas de color porque estas características son tan esenciales y agregan un valor tan obvio al entorno de trabajo (Sí, incluso los esquemas de color son importantes: sufro de fatiga visual y estar sentado 9 horas al día frente a una pantalla blanca brillante no me hace ningún bien a los ojos) mientras que el minimapa simplemente no proporciona una usabilidad tan importante que no puede vivir sin él.

Si alguien te pregunta qué valor agrega el minimapa, ¿podrías pensar en un buen argumento que no sea "se ve bien"? No pude.
Una vez más, me encanta la función, después de trabajar con Sublime text & Atom me gustó mucho tenerla a un lado solo para tener una pequeña perspectiva de dónde estoy. pero es necesario? no.
Puede desplazarse, se puede ver el contenido de su archivo, verá algunos consejos sobre la barra de desplazamiento actual, ¿por qué está viendo el código de una versión pequeña ilegible ninguna utilidad para usted?

Estoy trabajando con VSCode en este momento en varios proyectos, y lo elegí debido a la falta de características básicas reales que tienen otros editores modernos ... entre ellos se encuentran el rendimiento y la estabilidad (ehem, Brackets), soporte multilingüe (Sublime), soporte nativo de lenguajes web e Intellisense (lo siento, Atom) o incluso un instalador de extensiones nativo y fácil de usar (de nuevo, Sublime)

alguien te pregunta qué valor agrega el minimapa, ¿podrías pensar en un buen argumento que no sea "se ve bien"?

Si. Ayuda sustancialmente a navegar por un archivo grande. Al menos por eso lo extraño tanto.

@fredrikaverpil Bueno, "sustancialmente" en mi opinión es un poco exagerado, pero seguro.
Todavía no puedo compararlo con buscar o copiar / pegar ...

@fredrikaverpil Hay otras formas útiles de navegar por un archivo grande. @sapiraz tiene razón en que esta no es una característica básica, y que compararla con características verdaderamente básicas (como sangría automática al pegar ... ¡vamos!) es un poco exagerado.

Dicho esto, creo que todos podemos estar de acuerdo en que realmente queremos que esto esté disponible de una forma u otra.

Este hilo ha dado un giro ónimo, mira, es una característica que extraño en VSCode en este momento. Si pudiera implementarse en una próxima versión genial, si no, sería una lástima, pero intentaré arreglármelas.

@sapiraz Estoy totalmente de acuerdo con tus argumentos y no los refutaría solo para refutarlos, porque creo que cualquier persona con los

¿Podrías pensar en un buen argumento que no sea "se ve bien"? No pude.
...
¿Por qué le resulta útil ver su código en una versión pequeña ilegible?

No digamos que no es útil, porque no lo ve de esa manera. Normalmente, para saber si algo es útil, las estadísticas ayudan mucho, pero no tengo ninguna, ¡así que solo puedo confiar en todas esas personas (incluyéndome a mí) que no usarán VS solo por esto! No es nada. Por supuesto, creo que todos estaríamos de acuerdo en que claramente es una resistencia al cambio, pero aún decimos que es útil para nosotros y no es muy científico disminuir la importancia de esto con un juicio personal.

Si puedo proporcionar un argumento. Acá hay uno :
default
(Precisión) Desde que conozco mi código, sé que he cambiado las consultas de Db por su forma.
(Velocidad) Con un clic, puedo llegar allí. Sin desplazamiento.
(UX) Si trabaja con archivos grandes, ayuda mucho. Da la sensación de controlar todo, por lo que no tienes que buscar.

Me alegro mucho de ver esta función en el Plan de iteración de febrero n.º 20021

Conoceremos esta característica a principios de marzo.
Gracias por tu trabajo @todos

Una vez enviado, ¿los usuarios podrán desactivar esto por completo?

No me importa que esto mueva un poco el rendimiento de un lugar a otro solo para renderizar otra vista más pequeña.

Me quedaré con la búsqueda de / , ? porque tengo todo lo que necesito con ellos.

+1 para el Minimapa. Rly w8ing

Parece que ya está disponible en la versión privilegiada,
Sin embargo, debe estar habilitado en la configuración, establezca "editor.minimap.enabled" en verdadero :)

Probé el minimapa en la versión de información privilegiada, ¡y se ve muy bien, chicos!

Un par de sugerencias:

  • Me gustaría poder hacer clic y arrastrar la región de la ventana de forma similar a hacer clic y arrastrar la barra de desplazamiento.
  • Me gustaría jugar con una configuración de editor.minimap.width , el minimapa es un poco demasiado ancho para mí.

PD: El rendimiento es fantástico, ¡felicitaciones a ustedes!

Por favor, asegúrese de que los aspectos destacados sean realmente visibles en el minimapa (como ejecutar una función de búsqueda), ya que en Sublime, aunque están resaltados, el resaltado es tan mínimo que de todos modos tendrá que revisar todo el archivo ...

Gracias por escuchar 😄

Ser capaz de desplazarse hacia arriba y hacia abajo sería bueno ... (como Sublime)
Por el momento, parece que solo haga clic en él :-(

¡Buen trabajo aunque - muy apreciado!

El 19 de febrero de 2017 a las 21:20, Mladen Mihajlović [email protected]
escribió:

Asegúrese de que los aspectos más destacados sean realmente visibles en el minimapa (como
ejecutando una función de búsqueda) ya que en Sublime, aunque son
resaltado, el resaltado es tan mínimo que prácticamente tienes que ir
a través de todo el archivo de todos modos ...

Gracias por escuchar 😄

-
Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/4865#issuecomment-280949966 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AATV7DaFs9W2PNnpIYzmSIQQqaIDv60Sks5reLIJgaJpZM4H93xs
.

Poder desplazarse haciendo clic / arrastrando la máscara de superposición. Igual que átomo, texto sublime, corchetes, geany, etc.

¿Sería posible ajustar el nivel de aumento? A veces me gustaría agrandar o reducir los tamaños de fuente dependiendo de en lo que esté trabajando.

Gracias por su paciencia con esta solicitud de función.

Lo esencial

  • Optamos por una geometría de minimapa diferente a la de Visual Studio.
  • Enviamos dos "fuentes" en escala de grises, una en la que un carácter es de 4x2 (4px de alto y 2px de ancho - abreviado como x2 ), y otro donde un carácter es 2x1 (2px de alto y 1px de ancho - abreviado como x1 ).
  • Basándonos en devicePixelRatio o en el nivel de zoom, elegiremos la fuente del minimapa x2 o x1 . Eso significa que en dispositivos retina o en otros dispositivos de alta proporción de píxeles (por ejemplo, Surface Books), la fuente x2 se seleccionará en zoomLevel 0, mientras que en otros dispositivos la fuente x2 ser elegido solo cuando se usa zoomLevel 4 y superior.
  • Esto significa que una línea obtiene una cantidad fija de espacio de pantalla vertical en el minimapa, ya sea 4px o 2px.
  • Si un archivo tiene más líneas de las que caben en el minimapa, el minimapa se desplazará :

minimap-geometry


Una nota sobre las fuentes

  • Cada carácter del minimapa está pintado de acuerdo con estas fuentes x2 o x1
  • Aquí está la fuente x2 con un zoom del 800%. ¿Puedes leer lo que hay ahí?

image

  • Si te apasiona, me encantaría recibir tu ayuda para ajustar estas fuentes. Ellos viven aqui

Probándolo

"editor.minimap.enabled": true en el canal de información privilegiada


Que esta hecho

El código de representación de caracteres / tokens está en una forma lo suficientemente buena (en cuanto a rendimiento) como para enviarlo: los píxeles del fotograma anterior se copian en el siguiente fotograma a medida que se necesitan, lo que hace que el renderizado de un minimapa tome menos de 1 ms. Bajo ciertas condiciones (por ejemplo, un archivo envuelto en palabras minimizado, saltando a una posición vertical diferente) puede tomar hasta unas pocas decenas de ms, pero en general, estoy algo contento con el código de representación de caracteres.

Que queda por hacer

Quedan muchas cosas por hacer. Por nombrar unos cuantos:

  • Minimapa: implemente arrastrar el control deslizante del minimapa. # 20935
  • Minimapa: la fuente 2x1 tiene demasiadas irregularidades # 20929
  • Minimapa: Limite su ancho a un máximo de 150px # 20931
  • Minimapa: renderiza más que personajes dentro del minimapa # 20934
  • Minimapa: agregue la opción para renderizar bloques en lugar de caracteres # 20947

Algunos son cuestión de pasar más tiempo, mientras que otros son más desafiantes (por ejemplo, si los errores fuera del minimapa se pintaran en algún lugar, podemos hacer que el minimapa se haga cargo de la necesidad de una regla general, etc.)

Realizaremos un seguimiento de todos los problemas relacionados con el minimapa con la etiqueta editor-minimap y me gustaría cerrar este problema en este momento.

Continuemos las discusiones en temas específicos que cubren diferentes aspectos, algunos de ellos lo harán en febrero, mientras que abordaremos otros más adelante.

@alexandrudima

¿Y este comentario? https://github.com/Microsoft/vscode/issues/4865#issuecomment -255368352

Lo preferiría al texto pequeño ilegible y proporciona la información que necesito. No estoy seguro de cuán difícil sería, pero por lo que parece, podría crear una nueva fuente donde cada carácter sea solo un cuadrado sólido, menos espacios en blanco.

@ sprinkle131313 He extraído tu comentario a un número separado: # 20947.

Continuemos las discusiones en temas específicos separados, no dude en crear nuevos problemas si no encuentra uno existente. Continuaré actualizando mi comentario anterior con enlaces para que todos podamos participar en las discusiones específicas.

¡Gracias! ¡Con ganas de verlo estable!

Pregunta: ¿es posible que el minimapa también sea un cursor? Este es el comportamiento predeterminado en VS, y esto es lo que veo como las principales diferencias entre las 2 aplicaciones. También tenga en cuenta que instalé la versión insiders para probarla

_EDITAR_
No importa, acabo de darme cuenta de que hay un problema abierto # 20935 para eso

@alexandrudima Gracias por # 20947. ¿Es posible tener "editor.minimap.renderCharacters": false como predeterminado para representar el bloque en lugar del texto? En mi opinión, se ve mucho más agradable y tiene una mejor usabilidad.

image

Me gustaría poder hacer zoom cuando esté sobre el texto o el bloque (depende del enfoque final). Actualmente, no puedo leer nada o saber en qué parte del código estoy, esto es útil si estás trabajando en un gran fragmento de código.
Además, descubrí que si mantengo el clic e intento desplazarme o moverme sobre el minimapa no pasa nada, necesito detenerme para hacer clic y elegir otra sección del código.

@FANMixco Estaba pensando en su petición, pero actualmente no estoy seguro de por qué necesita esa función, ya que si hace clic en el minimapa, el código se desplaza hasta ese punto sin mover el cursor, por lo que efectivamente es lo mismo. como un hover / zoom. ¿Quizás flotar es más eficiente que hacer clic?

@druellan , creo que @FANMixco está hablando de una función de zoom de minimapa que ya está en Visual Studio normal, como se muestra a continuación.
minimap_zoom

EDITAR
Olvidé mencionar que el zoom aparece solo después de permanecer sobre el minimapa durante 2 segundos. Si revisa el minimapa y comienza a desplazarse, el zoom no aparecerá, realmente debe dejar de desplazarse y esperar 2 segundos para verlo.

Si @ghiscoding tiene razón sobre la función @FANMixco , entonces definitivamente debería ser opcional, ya que creo que a muchas personas (como a mí) no les gustan las ventanas emergentes.

Gracias @ghiscoding , ahora está más claro. Todavía creo que esto no es una gran mejora con respecto al mecanismo de clic + deslizamiento, de hecho, parece más útil SIN el minimapa, en la propia barra de desplazamiento mejorada. Es una especie de función independiente y no forma parte de la función de minimapa.

Acerca de la sugerencia de @pohmelie , estoy totalmente de acuerdo, pero creo que esto también se puede adjuntar a un modificador de teclas cortas, como ctrl + hover en la barra de desplazamiento / minimapa para activar la función.

@druellan Esto también es lo mismo que la extensión https://atom.io/packages/minimap-codeglance en Atom. 11.000 descargas parecen sugerir que a mucha gente le gusta o lo necesita.

Personalmente no lo hago, así que si lo implementa, hágalo opcional. Un mecanismo de activación / tecla de acceso rápido suena bien, especialmente si está implementado en la barra de desplazamiento y en el minimapa.

¿Hay alguna manera de alternarlo como toggle-sidebar (ctrl-b) toggle-panel (ctrl-j)?

Me gusta el nuevo minimapa. Una cosa que me falta es el resaltado del texto encontrado con la búsqueda o la búsqueda de duplicados. Adjunté dos capturas de pantalla para visualizar ese asunto.

image
image

¡Buena característica, chicos!

💃

@sixenvi Le sugiero que agregue a una solicitud de función separada

No estoy seguro de que el equipo de VSCode lea comentarios o solicitudes sobre problemas que están cerrados, como este aquí.

¡Hola @druellan ! Sí, lo que quise decir con

¡Hola a todos! Si VS Code se perdió una característica, fue esta y ahora es completa. Una implementación tan agradable y un gran rendimiento. ( @alexandrudima como siempre me fascinas!)

Solo una cosa simple que noté:

out-of-screen-scroll

Buen descubrimiento. Creo que debería presentar un nuevo error ya que esto está cerrado. Equipo de vscode
puede que no lo vea.

El viernes 3 de marzo de 2017 a las 7:51 a.m., Pouya Kary [email protected] escribió:

¡Hola a todos! Si VS Code simplemente se perdió una característica, fue esta y ninguna tiene
nada que pudiera haber deseado tener! Una implementación tan agradable y genial
rendimiento. (¡Como siempre me fascinas!)

Solo una cosa simple que noté:

[imagen: desplazamiento fuera de la pantalla]
https://cloud.githubusercontent.com/assets/2157285/23557582/c264e420-0045-11e7-9ea6-8789f30db9de.gif

-
Recibes esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Microsoft/vscode/issues/4865#issuecomment-283990000 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AA-JVANXdhu57m4hlAODRcV6qhsNGzgrks5riDb3gaJpZM4H93xs
.

@nojvek ah ¡no me di cuenta de eso! bien, un problema más ...

Creo que una cosa más sería genial: no ocultar la posición actual en el minimapa (actualmente solo es visible al pasar el mouse).
image
Probablemente sería mejor tener una clave más en la configuración para esto.

@Andrfas, esto se rastrea en # 21404 y # 21784.

Como sugerencia, deberían dejar de escribir en un problema cerrado que ya no se rastrea y buscar / abrir un nuevo problema.

Quiero botones de barra de desplazamiento.

¿Podemos hacer que el mapa o la barra de desplazamiento aparezcan solo cuando se pasa el mouse sobre los bordes?

@gauravsaini este es un problema cerrado

¿Hay alguna forma de utilizar la versión anterior? en uno de mis recursos en línea, el profesor usó el mapa y categorizó los bloques de código, con tantos códigos, no se puede leer en absoluto en la barra lateral, por lo que es mucho mejor ignorar la visualización del código, pero tener el código categorizado por su código bloques.

@deadmann, si quieres apagar el minimapa, ve a tu configuración y busca:

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

Y configúrelo en falso. No es necesario volver a una versión anterior.

@deadmann, si quieres apagar el minimapa, ve a tu configuración y busca:

// Controla si se muestra el minimapa
"editor.minimap.enabled": verdadero,
Y configúrelo en falso. No es necesario volver a una versión anterior.

Quiero un minimapa, en realidad soy yo quien lo activó, pero quiero en una forma más simple, cuando mi código crezca y con líneas largas, no es simple mirar el minimapa, quiero decir, ¿puedes realmente lees esto?

x

Lo encontré, en otro sistema, donde teníamos un gran proyecto, solo quería decirles que puede ser ilegible en tales casos, donde apareció, puede deberse al uso de una versión diferente de VS en esa plataforma, o porque el archivo es demasiado largo. pero eso es lo que muestro en la imagen.

¿Fue útil esta página
0 / 5 - 0 calificaciones