Smooth markdown scrolling

This commit is contained in:
Matt Bierner
2017-01-24 22:22:51 -08:00
parent ccac9f3725
commit dbb77f1eef
3 changed files with 7 additions and 7 deletions
+5 -2
View File
@@ -65,10 +65,13 @@
if (isNaN(line)) {
continue;
}
const bounds = element.getBoundingClientRect();
const entry = { element, line };
if (offset >= window.scrollY + element.getBoundingClientRect().top && offset <= window.scrollY + element.getBoundingClientRect().top + element.getBoundingClientRect().height) {
if (offset >= window.scrollY + bounds.top && offset <= window.scrollY + bounds.top + bounds.height) {
// add progress through element
entry.line += (offset - (window.scrollY + bounds.top)) / (bounds.height);
return { previous: entry };
} else if (offset < window.scrollY + element.getBoundingClientRect().top) {
} else if (offset < window.scrollY + bounds.top) {
return { previous, next: entry };
}
previous = entry;
+1 -1
View File
@@ -47,7 +47,7 @@ export function activate(context: vscode.ExtensionContext) {
const sourceLine = Math.floor(line);
const text = editor.document.getText(new vscode.Range(sourceLine, 0, sourceLine + 1, 0));
const fraction = line - Math.floor(line);
const start = fraction * text.length;
const start = Math.floor(fraction * text.length);
editor.revealRange(
new vscode.Range(sourceLine, start, sourceLine + 1, 0),
vscode.TextEditorRevealType.AtTop);
+1 -4
View File
@@ -131,11 +131,8 @@ export class MarkdownEngine {
private addLinkValidator(md: any): void {
const validateLink = md.validateLink;
md.validateLink = (link: string) => {
if (validateLink(link)) {
return true;
}
// support file:// links
return link.indexOf('file:') === 0;
return validateLink(link) || link.indexOf('file:') === 0;
};
}
}