Closed jschraub closed 7 years ago
@jschraub Can you please point out specific features you like or that help you move around more efficiently from the Enhanced Scrollbar of VS 2013/2015 ?
Absolutely, @alexandrudima. The ability to at a glance, get a visual representation of your document/code. Having a "10,000 foot view" makes it easy to glance at your document and immediately click into the piece of code for which you are looking. While the Enhanced Scroll bar from VS 2013/2015 offer more features than that, I don't use many of them.
Many other code editors have similar features, including Sublime and Atom and they all have different sub-features, but I think having an offering for a "10,000 foot view" of your document at a quick glance, gives great advantage over Text Editors that do not have a corresponding feature.
Please let me know if that is what you were looking for, or it you need better/different details.
Great description! Thank you!
Hi @alexandrudima , is anyone from VSCode working on this for the next release? Is this something that the community can contribute to the scrollbar?
I'm guessing it will be some sort of reading the editor model and drawing a minimap representation of it in a canvas. wdyt?
@nojvek We will draft and release the September plan at the end of next week. Given this issue is climbing to the top of this query we use to track community requests (https://github.com/Microsoft/vscode/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc), it has a high change to make it on the September plan.
Please stay tuned :)
Beta bits plz! It's my favorite feature of and the only thing keeping me tethered to Sublime Text.
Soon™
👍 the minimap feature is dearly missed
I miss it heavily too.
+Infinity
@+1 Minimap is one of the must-have feature for me, it works great on atom with many addons.
see kate's minimap which i see as a good example on this matter: https://docs.kde.org/trunk5/en/applications/katepart/kate-part-scrollbar-minimap.html
+1 for the Minimap. A 'hold middle-mouse button' (scrollbar button) to scroll would be great too
If we have git status, errors, other occurrence of current word, find results, peek preview window indication, basically all Sublime's minimap has + all VSCode's current scrollbar has, it'll be huge!
I don't see why VS Code can't if VS can.
this would be a huge win and one of the last missing features for the sublime holdovers
I recently discovered the use, can't wait till it's implemented
+1 can't wait for this to be implemented in VSCode...
+1 Please add soon.
+1 Please add MiniMap
I can't believe this was not a feature from first release?!
Please add MiniMap for VSCode
+1 Please add MiniMap
+1 to that
I'm so sad this didn't make it in 1.6.0 :( please add this ASAP
Doesn't appear to have made the October plan, either. Fingers crossed for November, I guess. Looks like it's now sitting at the top of the requests list, so that's pretty exciting.
+1
+10
+1
+1
Please no more +1 comment. Upvote the original issue instead. People subscribed to this thread want to be notified when progress has been made, not when you +1.
You guys can lock the conversation to collaborators.
Thanks & Regards, Deepu
On Thu, Oct 13, 2016 at 9:13 PM, Pine notifications@github.com wrote:
Please no more +1 comment. Upvote the original issue instead. People subscribed to this thread want to be notified when progress has been made, not when you +1.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Microsoft/vscode/issues/4865#issuecomment-253552567, or mute the thread https://github.com/notifications/unsubscribe-auth/ABDlF49KaIi-Lgu1cKv8Zhn1Tjoa-Hruks5qzlGkgaJpZM4H93xs .
+1
Even when I really don't miss the minimap on @code, if I need to choose I can say I really like the minimap approach on Atom (plus, the code is OS). Is not a zoom-out version of the code, but a schematic representation. That is clever, because what you want is to quick identify sections of the code and not the code itself, and you can visually improve the key elements that make that possible, like color, line lenght, white space...
Pretty much just waiting on this before I make the switch.
And could also make it show the git diff and highlight the current position?
A quick update on this:
Currently the rendering of a line of source code works by:
<span class="token block ts meta arrow expr var leading whitespace" style="width:38.53125px">→ </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"> </span>
<span class="token block ts meta keyword operator arrow assignment expr var">=</span>
<span class="token block ts meta arrow expr var"> </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>
.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); }
This is highly inefficient:
This was implemented at a time where we did not use TM and it was the best way to have a world where some tokenizers were still manually written, meanwhile others were done with TM. Now that we have finished moving json, css, less, scss, html, razor and handlebars to extensions we can begin optimizing again :).
I want to change it to a model where:
block
class name if no rule in the theme will select it), we can either inline them (i.e. style="..."
) or generate tailored class names (with short unique names that will hopefully help the browser do its magic faster).Finally, that will allow us to quickly know what color / boldness / emphasis a certain token has. We can then use this information to paint (using a <canvas>
) rectangles that approximate the text shape. The rectangles can be painted only for text that is guaranteed to be Left-To-Right (which is something we now track since a couple of days). Bi-Di / RTL text will not get a minimap since our text layout is done by the browser and it would be completely off. Also questionable what we should do with proportional fonts.
Sorry for the long post, just wanted to let you know this is on our radar and it might get prioritized even more due to the possible perf wins.
+1
+1
+1
Github has a way of having thumbs up counts. Please use that. +1's are really cluttering the thread.
On Thu, Nov 3, 2016 at 10:46 AM, Filiphe Vilar Figueiredo < notifications@github.com> wrote:
+1
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Microsoft/vscode/issues/4865#issuecomment-258219634, or mute the thread https://github.com/notifications/unsubscribe-auth/AA-JVK1A3zeRm0CUCePdrkPdqtRdbtMfks5q6h3ZgaJpZM4H93xs .
Any progress on this, guys? Can the community assist?
Please stop spamming the thread with +1s, FFS. When we follow this issue, we want to get pertinent info about progress on this feature, not get spammed by +1s. Use the thumbs-up reaction on original comment or up vote on UserVoice instead.
I was thinking that it would be great if we could click our middle mouse button and navigate around the editor like we can in a browser like Microsoft Edge, or Visual Studio. Scrolling up and down is great but side to side would be greater! I would love to be able to click the middle mouse button to bring up the up,down,left,right scroll wheel and move around the screen by moving the mouse. Try it in Edge and see exactly what I'm talking about!
Should I post this under something new?
i wont do +1, to get down votes, please please make try to resolve this issue after the upcoming November build so we can see this on January, I miss this alot. Update : and i get many down votes, too LOL
All @jschraub is saying that we need a Bird Eye View
I am using Sublime in conjunction with VSCode just for this reason that I don't have a way to peek my code of thousand line.
I'm confused. the team seems to have been using reactions to judge interest and prioritize feature requests... they even mentioned as much for "hot exit" in the last blog which got ~332. Yet "Enhanced Scrollbar" currently #1 (I believe) with over 600 has not moved into a milestone yet? so what's up, why does the dev team not share our view of this?
for what it's worth... this is one of the main reasons I stay with Atom... Atom's minimap and the 3rd party plug-ins for it are just fantastic... it without doubt has the best implementation (since there is a full api for it)
An update on this
We are working towards being able to implement this feature:
vscode-textmate
on the next
branch -- https://github.com/Microsoft/vscode-textmate/tree/nextvscode
.
monaco-editor
..css
such that it can be transformed to a JS datastructure (see https://github.com/Microsoft/vscode/commits/master/src/vs/editor/browser/standalone/media/standalone-tokens.css)monaco-languages
tokens such that they all emit classic-style tokens.left to do:
vscode-textmate
.TL;DR We're working on it, it just sometimes takes a lot of work under the hood before getting to the flashy stuff.
I would just like you to consider showing selections and search results highlighted in the minimap as a feature.
+1
what's the status on it now, someone summarize plz.
Feature Request
Add the Enhanced Scrollbar feature from VS 2013 and VS 2015 into VS Code. It's an extremely efficient way to move around within a file and would be a great feature to have in VS Code.
If this is already an extension or an option, I could not find it.